package com.xmzs.midjourney.domain.bo;

import com.xmzs.midjourney.domain.MjServer;
import com.xmzs.common.mybatis.core.domain.BaseEntity;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;

import java.io.Serializable;

/**
 * MJ服务器信息配置业务对象 mj_server
 *
 * @author lixg
 * @date 2023-08-09
 */
@Data
@AutoMapper(target = MjServer.class, reverseConvertGenerate = false)
public class MjServerBo implements Serializable {

    /**
     *
     */
    @NotNull(message = "不能为空")
    private Long id;

    /**
     * 服务器ID
     */
    @NotNull(message = "服务器ID不能为空")
    private String guildId;


    /**
     * 频道ID
     */
    @NotNull(message = "频道ID不能为空")
    private String channelId;

    /**
     * 机器人token
     */
    @NotBlank(message = "机器人token不能为空")
    private String botToken;

    /**
     * 机器人名称
     */
    @NotBlank(message = "机器人名称不能为空")
    private String botName;

    /**
     * 用户token
     */
    @NotBlank(message = "用户token不能为空")
    private String userToken;

    /**
     *
     */
    @NotBlank(message = "不能为空")
    private String userAgent;

    /**
     * 执行队列最大长度
     */
    @NotNull(message = "执行队列最大长度不能为空")
    private Integer maxExecuteQueueSize;

    /**
     * 最大文件大小
     */
    @NotNull(message = "最大文件大小不能为空")
    private Long maxFileSize;

    /**
     * 等待队列最大长度
     */
    @NotNull(message = "等待队列最大长度不能为空")
    private Long maxWaitQueueSize;

    /**
     * 状态：0：禁用，1：可用
     */
    private Integer status;

    /**
     * Discord Api Url
     */
    private String discordApiUrl = "https://discord.com/api/v9/interactions";

    /**
     * Discord 上传图片 Url
     */
    private String discordUploadUrl;

    /**
     * 获取 Discord 上传图片 Url
     */
    public String getDiscordUploadUrl() {
        return "https://discord.com/api/v9/channels/" + channelId + "/attachments";
    }
}
